home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Power 1997 December
/
MACPOWER-1997-12.ISO.7z
/
MACPOWER-1997-12.ISO
/
AMUG
/
PROGRAMMING
/
Raven 1.2 Examples.sit
/
Raven 1.2 Examples
/
Quill
/
Source
/
WindowSizeEditor.cpp
< prev
next >
Wrap
Text File
|
1997-08-08
|
5KB
|
191 lines
/*
* File: WindowSizeEditor.h
* Summary: A view that knows how to edit a TWindow's size info.
* Written by: Jesse Jones
*
* Copyright ゥ 1996 Jesse Jones.
* For conditions of distribution and use, see copyright notice in ZTypes.h
*
* Change History (most recent first):
*
* <-> 12/24/96 JDJ Created
*/
#include "WindowSizeEditor.h"
#include <ZDialogUtils.h>
#include <ZTextBox.h>
// ===================================================================================
// class CEditWindowSizeCommand
// ===================================================================================
//---------------------------------------------------------------
//
// CEditWindowSizeCommand::~CEditWindowSizeCommand
//
//---------------------------------------------------------------
CEditWindowSizeCommand::~CEditWindowSizeCommand()
{
}
//---------------------------------------------------------------
//
// CEditWindowSizeCommand::CEditWindowSizeCommand
//
//---------------------------------------------------------------
CEditWindowSizeCommand::CEditWindowSizeCommand(TWindow* pane, const SWindowInfo& oldInfo, const SWindowInfo& newInfo) : Inherited(pane, oldInfo, newInfo)
{
}
//---------------------------------------------------------------
//
// CEditWindowSizeCommand::UpdatePane
//
//---------------------------------------------------------------
void CEditWindowSizeCommand::UpdatePane(const SWindowInfo& newInfo)
{
SWindowInfo info = mPane->GetInfo();
info.attr.minSize = newInfo.attr.minSize;
info.attr.maxSize = newInfo.attr.maxSize;
mPane->SetInfo(info);
}
#pragma mark -
// ===================================================================================
// CWindowSizeEditor
// ===================================================================================
static TReanimatorRegister<CWindowSizeEditor> sWindowSizeEditorRegistrar;
//---------------------------------------------------------------
//
// CWindowSizeEditor::~CWindowSizeEditor
//
//---------------------------------------------------------------
CWindowSizeEditor::~CWindowSizeEditor()
{
}
//---------------------------------------------------------------
//
// CWindowSizeEditor::CWindowSizeEditor
//
//---------------------------------------------------------------
CWindowSizeEditor::CWindowSizeEditor(TView* superView) : Inherited(superView)
{
}
//---------------------------------------------------------------
//
// CWindowSizeEditor::Create [static]
//
//---------------------------------------------------------------
MReanimatable* CWindowSizeEditor::Create(MReanimatable* parent)
{
return new CWindowSizeEditor(dynamic_cast<TView*>(parent));
}
//---------------------------------------------------------------
//
// CWindowSizeEditor::Validate
//
//---------------------------------------------------------------
bool CWindowSizeEditor::Validate()
{
bool valid = Inherited::Validate();
if (valid) {
TTextBox* textBox = nil;
TSize minSize, maxSize;
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("MinSizeH"));
minSize.width = textBox->GetValue();
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("MinSizeV"));
minSize.height = textBox->GetValue();
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("MaxSizeH"));
maxSize.width = textBox->GetValue();
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("MaxSizeV"));
maxSize.height = textBox->GetValue();
if (minSize.width > maxSize.width) {
DoStop(LoadAppString("Min width is greater than max width!"), "");
dynamic_cast<TTextBox*>(this->FindSubPane("MinSizeH"))->SelectAll();
valid = false;
} else if (minSize.height > maxSize.height) {
DoStop(LoadAppString("Min width is greater than max height!"), "");
dynamic_cast<TTextBox*>(this->FindSubPane("MinSizeV"))->SelectAll();
valid = false;
}
}
return valid;
}
//---------------------------------------------------------------
//
// CWindowSizeEditor::GetEditorInfo
//
//---------------------------------------------------------------
SWindowInfo CWindowSizeEditor::GetEditorInfo() const
{
SWindowInfo info;
TTextBox* textBox = nil;
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("MinSizeH"));
info.attr.minSize.width = textBox->GetValue();
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("MinSizeV"));
info.attr.minSize.height = textBox->GetValue();
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("MaxSizeH"));
info.attr.maxSize.width = textBox->GetValue();
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("MaxSizeV"));
info.attr.maxSize.height = textBox->GetValue();
return info;
}
//---------------------------------------------------------------
//
// CWindowSizeEditor::SetEditorInfo
//
//---------------------------------------------------------------
void CWindowSizeEditor::SetEditorInfo(const SWindowInfo& info)
{
TTextBox* textBox = nil;
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("MinSizeH"));
textBox->SetValue(info.attr.minSize.width);
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("MinSizeV"));
textBox->SetValue(info.attr.minSize.height);
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("MaxSizeH"));
textBox->SetValue(info.attr.maxSize.width);
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("MaxSizeV"));
textBox->SetValue(info.attr.maxSize.height);
}